<? php
function validate_age($part1 = '', $part2 = '', $part3 = '', $part4 = '', $mindestalter = 18)
{

	if ($part1 == '' || $part2 == '' || $part3 == '' || $part4 == '')
	{
		return false;
	}
	
	$konst = 7;
	for($i=0; $i<9; $i++)
	{
	
		$zahl = substr($part1, $i, 1);
		if ($konst == 7)
		{
			$part1gesamt = $part1gesamt + ($zahl * 7);
			$konst = 3;
		}
		elseif ($konst == 3)
		{
			$part1gesamt = $part1gesamt + ($zahl * 3);
			$konst = 1;
		}
		elseif ($konst == 1)
		{
			$part1gesamt = $part1gesamt + ($zahl * 1);
			$konst = 7;
		}
	}
	
	$pruefziffer1 = substr($part1, -2, 1);
	$pruefziffer2 = substr($part1gesamt, -1, 1);
	
	if ($pruefziffer1 !== $pruefziffer2)
	{
		return false;
	}

	$konst = 7;
	for($i=0; $i<6; $i++)
	{
		$zahl = substr($part2, $i, 1);
		if ($konst == 7)
		{
			$part2gesamt = $part2gesamt + ($zahl * 7);
			$konst = 3;
		}
		elseif ($konst == 3)
		{
			$part2gesamt = $part2gesamt + ($zahl * 3);
			$konst = 1;
		}
		elseif ($konst == 1)
		{
			$part2gesamt = $part2gesamt + ($zahl * 1);
			$konst = 7;
		}
	}
	
	$pruefziffer1 = substr($part2, -1, 1);
	$pruefziffer2 = substr($part2gesamt, -1, 1);
	
	if ($pruefziffer1 !== $pruefziffer2)
	{
		return false;
	}



	$konst = 7;
	for($i=0; $i<6; $i++)
	{
		$zahl = substr($part3, $i, 1);
		if ($konst == 7)
		{
			$part3gesamt = $part3gesamt + ($zahl * 7);
			$konst = 3;
		}
		elseif ($konst == 3)
		{
			$part3gesamt = $part3gesamt + ($zahl * 3);
			$konst = 1;
		}
		elseif ($konst == 1)
		{
			$part3gesamt = $part3gesamt + ($zahl * 1);
			$konst = 7;
		}
	}
	
	$pruefziffer1 = substr($part3, -1, 1);
	$pruefziffer2 = substr($part3gesamt,-1, 1);
	
	if ($pruefziffer1 !== $pruefziffer2)
	{
		return false;
	}

	$konst = 7;
	$part1 = substr($part1, 0, 10);
	$partgesamt = $part1 . $part2 . $part3;

	for($i=0; $i<24; $i++)
	{
		$zahl = substr($partgesamt, $i, 1);
		if ($konst == 7)
		{
			$part4gesamt = $part4gesamt+($zahl * 7);
			$konst=3;
		}
		elseif ($konst == 3)
		{
			$part4gesamt = $part4gesamt + ($zahl * 3);
			$konst = 1;
		}
		elseif ($konst == 1)
		{
			$part4gesamt = $part4gesamt + ($zahl * 1);
			$konst = 7;
		}
	}

	$pruefziffer1 = $part4;
	$pruefziffer2 = substr($part4gesamt, -1, 1);
	
	if ($pruefziffer1 !== $pruefziffer2)
	{
		return false;
	}

	$jahr = substr($part2, 0, 2);
	$monat = substr($part2, 2, 2);
	$tag = substr($part2, 4, 2);
	$geburtstag = $tag . '.' . $monat . '.19' . $jahr;

	$array = explode(".", $geburtstag); 
	$sekundenseitgeburt = mktime(0, 0, 0, $array[1], $array[0], $array[2]); 
	$heute = time(); 

	$alter = $heute - $sekundenseitgeburt; 
	$alterinjahren = date('Y', $alter) - 1970; 
	
	if ($alterinjahren < $mindestalter)
	{
		return false;
	}
	
		return true;
}
?>